<!DOCTYPE html>
<html lang="it">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		[page:Loader] &rarr;

		<h1>[name]</h1>

		<p class="desc">
      Una classe di basso livello per il caricamento delle risorse tramite la Fetch, utilizzata
      internamente dalla maggior parte dei loader.
      Può anche essere utilizzata direttamente per caricare qualsiasi tipo di file che non ha un loader.
		</p>

		<h2>Codice di Esempio</h2>
		<code>
		const loader = new THREE.FileLoader();

		// carica un file di testo e invia il risultato alla console 
		loader.load(
			// URL della risorsa
			'example.txt',

			// onLoad callback
			function ( data ) {
				// invia il testo alla console
				console.log( data )
			},

			// onProgress callback
			function ( xhr ) {
				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
			},

			// onError callback
			function ( err ) {
				console.error( 'An error happened' );
			}
		);
		</code>

		<p>
			<b>Nota:</b> La cache deve essere abilitata usando
			<code>THREE.Cache.enabled = true;</code>
      Questa è una proprietà globale e deve essere impostata una volta per essere utilizzata da tutti i loader che usano il FileLoader internamente.
      [page:Cache Cache] è un modulo della cache che contiene la risposta di ogni richiesta fatta attraverso questo loader, quindi ogni file viene richiesto una sola volta.
		</p>


		<h2>Costruttore</h2>

		<h3>[name] ( [param:LoadingManager manager] )</h3>
		<p>
			[page:LoadingManager manager] — Il [page:LoadingManager loadingManager] del loader da utilizzare. 
      Il valore predefinito è [page:LoadingManager THREE.DefaultLoadingManager].
		</p>

		<h2>Proprietà</h2>
		<p>Vedi la classe base [page:Loader] per le proprietà comuni.</p>

		<h3>[property:String mimeType]</h3>
		<p>
			Il [link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types mimeType] previsto.
			Vedi [page:.setMimeType]. Il valore predefinito è `undefined`.
		</p>

		<h3>[property:String responseType]</h3>
		<p>Il tipo di risposta previsto. Vedi [page:.setResponseType]. Il valore predefinito è `undefined`.</p>

		<h2>Metodi</h2>
		<p>Vedi la classe base [page:Loader] per i metodi comuni.</p>

		<h3>[method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
		<p>
			[page:String url] — Il path o URL del file. Questo può anche essere un
				[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
			[page:Function onLoad] (opzionale) — Verrà chiamato quando il caricamento sarà completato. L'argomento sarà la risposta caricata.<br />
			[page:Function onProgress] (opzionale) — Verrà chiamato durante il caricamento. L'argomento sarà l'istanza ProgressEvent, che contiene
      .[page:Boolean lengthComputable], .[page:Integer total] e .[page:Integer loaded]. Se il server non imposta l'header Content-Length; .[page:Integer total] sarà 0.<br />
			[page:Function onError] (opzionale) — Verrà chiamato in caso di errori di caricamento.<br /><br />

      Inizia il caricamento dall'url e passa la risposta alla funzione onLoad.
		</p>

		<h3>[method:this setMimeType]( [param:String mimeType] )</h3>
		<p>
			Imposta il [link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types mimeType] previsto
      per il file in fase di caricamento. Si noti che in molti casi questo verrà determinato automaticamente, quindi il valore predefinito è `undefined`.
		</p>

		<h3>[method:this setResponseType]( [param:String responseType] )</h3>
		<p>
      Cambia il type della risposta. I valori validi sono:<br />
			[page:String text] o una stringa vuota (valore predefinito) - restituisce i dati come [page:String String].<br />
			[page:String arraybuffer] - carica i dati in un [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer ArrayBuffer] e lo restituisce.<br />
			[page:String blob] - restituisce i dati come un [link:https://developer.mozilla.org/en/docs/Web/API/Blob Blob].<br />
			[page:String document] - parsa il file utilizzando un [link:https://developer.mozilla.org/en-US/docs/Web/API/DOMParser DOMParser].<br />
			[page:String json] - parsa il file utilizzando un [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse JSON.parse].<br />
		</p>


		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>
